package com.school.campus.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.school.common.annotation.Excel;
import com.school.common.core.domain.BaseEntity;

/**
 * 社团申请对象 club_application
 *
 * @author wwj
 * @date 2025-11-06
 */
public class ClubApplication extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long id;

    /**
     * 申请人id
     */
    @Excel(name = "申请人id")
    private Long applicantId;

    /**
     * 申请人名称
     */
    @Excel(name = "申请人名称")
    private String applicantName;

    /**
     * 入团理由
     */
    @Excel(name = "入团理由")
    private String applyReason;

    /**
     * 社团id
     */
    @Excel(name = "社团id")
    private Long clubId;

    /**
     * 申请时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date applyTime;

    /**
     * 状态（0申请中1同意2拒绝）
     */
    @Excel(name = "状态", readConverterExp = "0=申请中1同意2拒绝")
    private Long status;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setApplicantId(Long applicantId) {
        this.applicantId = applicantId;
    }

    public Long getApplicantId() {
        return applicantId;
    }

    public void setApplicantName(String applicantName) {
        this.applicantName = applicantName;
    }

    public String getApplicantName() {
        return applicantName;
    }

    public void setApplyReason(String applyReason) {
        this.applyReason = applyReason;
    }

    public String getApplyReason() {
        return applyReason;
    }

    public void setClubId(Long clubId) {
        this.clubId = clubId;
    }

    public Long getClubId() {
        return clubId;
    }

    public void setApplyTime(Date applyTime) {
        this.applyTime = applyTime;
    }

    public Date getApplyTime() {
        return applyTime;
    }

    public void setStatus(Long status) {
        this.status = status;
    }

    public Long getStatus() {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("applicantId", getApplicantId())
                .append("applicantName", getApplicantName())
                .append("applyReason", getApplyReason())
                .append("clubId", getClubId())
                .append("applyTime", getApplyTime())
                .append("status", getStatus())
                .toString();
    }
}
